package com.example.demo.ai.sftp;

import com.jcraft.jsch.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

@Service
public class SftpService {
    @Autowired
    private SftpConfig config;

    public Channel createChannel(String type) throws JSchException {
        JSch jsch = new JSch();
        Session session = null;

        // 创建SSH会话
        session = jsch.getSession(config.getUsername(), config.getHost(), config.getPort());
        session.setPassword(config.getPassword());
        session.setConfig("StrictHostKeyChecking", "no");
        session.connect(config.getSession());

        Channel channel = session.openChannel(type);
        channel.connect(config.getChannel());

        // 检查根目录权限
//        testRootPermissions(sftp);
        return channel;
    }

//    private void testRootPermissions(ChannelSftp sftp) throws SftpException {
//        try {
//            sftp.cd("/");
//            System.out.println("[权限检查] 根目录访问正常");
//
//            // 创建测试目录
//            String testDir = "/sftp-perm-test-" + System.currentTimeMillis();
//            sftp.mkdir(testDir);
//            sftp.rmdir(testDir);
//            System.out.println("[权限检查] 创建/删除测试目录成功");
//        } catch (SftpException e) {
//            System.err.println("根目录权限异常! 错误代码: " + e.id);
//            throw new RuntimeException("服务器权限不足，请检查: " + e.getMessage(), e);
//        }
//    }


}
